//
//  YGEmoticonPackageModel.swift
//  表情键盘
//
//  Created by liyonggui on 16/5/23.
//  Copyright © 2016年 liyonggui. All rights reserved.
//

import UIKit

/// 表情包模型，用来管理多个表情模型
class YGEmoticonPackageModel: NSObject {
    
    /// 表情包文件夹名称
    var id: String
    
    /// 表情包名称
    var group_name_cn: String
    
    /// 所有表情模型
    var emoticons: [YGEmoticonModel]
    
    /// 多页表情模型
    var pageEmoticons: [[YGEmoticonModel]] = [[YGEmoticonModel]]()
    
    init(id: String, group_name_cn: String, emoticons: [YGEmoticonModel]) {
        self.id = id
        self.group_name_cn = group_name_cn
        self.emoticons = emoticons
        super.init()
        
        spliteEmoticons()
    }
    
    /// 将所有表情模型拆分成多页
    private func spliteEmoticons() {
        
        // 计算有几页
        let pageCount = (emoticons.count + YGEmoticonNumberOfPage - 1 ) / YGEmoticonNumberOfPage
        
        // 默认这组没有表情
        if pageCount == 0 {
            let emptyPageModel = [YGEmoticonModel]()
            pageEmoticons.append(emptyPageModel)
            return 
        }
        
        // 一页一页拆
        for i in 0..<pageCount {
            // 首位置
            let location = i * YGEmoticonNumberOfPage
            // 长度
            var length = YGEmoticonNumberOfPage
            if location + YGEmoticonNumberOfPage > emoticons.count {
                length = emoticons.count - location
            }
            let range = NSRange(location: location, length: length)
            // 截取数组
            let pageEmoticon = (emoticons as NSArray).subarrayWithRange(range) as! [YGEmoticonModel]
//            print("第\(i)页, pageEmoticon: \(pageEmoticon)")
            pageEmoticons.append(pageEmoticon)
        }
        
    }
    
    
    // 对象打印方法
    override var description: String {
        get {
            return "\n \t 表情包模型: id: \(id), group_name_cn: \(group_name_cn), emoticons: \(emoticons)"
        }
    }

}
































